@Catch(...exceptions) tells NestJS which exception types the filter handles. The filter's catch() method is only invoked when the thrown exception is an instance of one of the listed types. When @Catch() has no argument the filter receives every exception — both HttpExceptions and raw Errors — making it the correct decorator for a global all-exceptions safety net.
@Catch(NotFoundException) also catches subclasses of NotFoundException.
@Catch(HttpException) is the correct decorator when you want to handle all client HTTP errors.
@Catch() with no argument is the correct decorator for a global all-exceptions safety net filter.
A filter with @Catch(NotFoundException) will NOT handle BadRequestException — the types must match.
Without any @Catch() decorator on the class the filter will not work — the decorator is mandatory.